home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / qbbs / ptqwkb2.zip / PTQWK.ZIP / PTQWK.INC < prev    next >
Text File  |  1993-03-18  |  17KB  |  227 lines

  1. (*
  2.  
  3.    PT-QWK Mail Door               (C)opyright 1993 by Pasi Talliniemi
  4.  
  5.    This structure file for PT-QWK Mail Door may be distributed freely
  6.    as long as it is not modified in any way.
  7.  
  8.    If you have anything on your mind, you can contact me by :
  9.    - calling my BBS : El Paso, +358-0-2903463, 24H, v.32bis
  10.    - sending netmail :
  11.      Internet   : pasi.talliniemi@f297.n220.z2.fidonet.org
  12.      Fidonet    : 2:220/297
  13.      Supernet   : 42:1201/311
  14.      Vnet       : 46:9616/80
  15.      Delightnet : 105:13581/310
  16.    - sending snailmail :
  17.      Pasi Talliniemi, Tiilitie 3, SF-05200 Rajam{ki, Finland
  18.  
  19.    Thank you for your attention and interest in PT-QWK Mail Door.
  20.  
  21.    NOTE! This structure file may be changed radically in these
  22.          PTQWK beta versions as I am searching for optimum settings.
  23.  
  24. *)
  25.  
  26. const
  27.  
  28.      Version       = '1.00ß2';
  29.      LongVersion   = '1.00 Beta-2';
  30.  
  31.      ArchiveCount  = 10;
  32.      ProtocolCount = 20;
  33.      BulletinCount = 5;
  34.  
  35. type
  36.  
  37.      RegistrationRecord = Record
  38.        BBS         : String [35];           (* Bulletin board system's name             *)
  39.        Sysop       : String [35];           (* Sysop's name                             *)
  40.        Location    : String [35];           (* BBS location                             *)
  41.        PhoneNumber : String [15];           (* BBS phone number                         *)
  42.        RegCode     : LongInt;               (* Reg.code, if registered, otherwise zero  *)
  43.        BBSID       : String [8];            (* BBS ID - QWK file name                   *)
  44.        BBSID2      : String [2];            (* BBS ID - OMEN file name                  *)
  45.        Empty       : Array [1..10] of Byte; (* Empty space                              *)
  46.      end;                                   (* Size 150 bytes                           *)
  47.  
  48.      ArchiveRecord = Record
  49.        Active      : Boolean;               (* TRUE if this compression is used         *)
  50.        Extension   : String [3];            (* File extension for this compression type *)
  51.        Name        : String [15];           (* Short extra definition                   *)
  52.        Key         : Char;                  (* Key to select this compression type      *)
  53.        Compress    : String [127];          (* Command line needed to compress file     *)
  54.        Uncompress  : String [127];          (* Command line needed to uncompress file   *)
  55.        ApproxPack  : Byte;                  (* How long does it take to pack 100 kb?    *)
  56.        Effic       : Byte;                  (* (Packed_file_size/Original_file_size) %  *)
  57.        ID          : String [35];           (* Archive ID                               *)
  58.      end;                                   (* Size 300 bytes                           *)
  59.  
  60.      ProtocolRecord = Record
  61.        Active      : Boolean;               (* TRUE if this protocol is used            *)
  62.        Name        : String [15];           (* Short definition for this protocol       *)
  63.        Key         : Char;                  (* Key to select this protocol              *)
  64.        Effic       : Byte;                  (* Transfer efficiency, 100 = fast          *)
  65.        Download    : String [127];          (* Command line needed to send file         *)
  66.        Upload      : String [127];          (* Command line needed to receive file      *)
  67.        Batch       : Boolean;               (* Can multiple files sent at the same time *)
  68.        CreateSBBS  : Char;                  (* Create SBBSFILE.$$$? If yes, protocol ch *)
  69.        Empty       : Array [1..23] of Byte; (* Empty space                              *)
  70.      end;                                   (* Size 300 bytes                           *)
  71.  
  72.      (* Variable for bidirectional transfer is not needed because PTQWK checks every *)
  73.      (* if replies have been uploaded *)
  74.  
  75.      BulletinRecord = Record
  76.        Active      : Boolean;               (* TRUE if this bulletin is used            *)
  77.        Name        : String [7];            (* Bulletin filename's 7 first chars        *)
  78.        Empty       : Array [1..41] of Byte; (* Empty space                              *)
  79.      end;                                   (* Size 50 bytes                            *)
  80.  
  81.      FreeMethods = (TimeReturn, NoTimeReturn, CheckTime);
  82.  
  83.      OutMethods = (LocalFileAttach, LeaveToWorkDir, DeleteQWK);
  84.  
  85.      Where = (WorkDirectory, TempDirectory, LocalAttachDirectory);
  86.  
  87.      Where2 = (_LocalAttach, _NetMail);
  88.  
  89.      ConfigInfo = Record                                          (* PTQWKCFG.BBS                                           *)
  90.        RegInfo      : RegistrationRecord;                         (* Sorry, one registration per BBS only !                 *)
  91.        Archive      : Array [1..ArchiveCount] of ArchiveRecord;   (* Sorry, 10 compression types at maximum !               *)
  92.        Protocol     : Array [1..ProtocolCount] of ProtocolRecord; (* Sorry, 20 file transfer protocols at maximum !         *)
  93.        Bulletin     : Array [1..BulletinCount] of BulletinRecord; (* Sorry, 5 bulletin conferences at maximum !             *)
  94.        LocalMoveDir : String [67];                                (* Where to "download" msg packets when packed locally    *)
  95.        SwapDir      : String [67];                                (* PTQWK swap file directory (preferably in ram disk)     *)
  96.        NoTimeLeft   : FreeMethods;                                (* How to handle downloads?                               *)
  97.        WhenOut      : OutMethods;                                 (* How to handle packet when carrier is lost etc.         *)
  98.        MaxMsgsPack1 : Word;                                       (* How many msgs to be packed at most on 300-1200 bps     *)
  99.        MinDiskSpace : Word;                                       (* Minimum disk space in kilobytes                        *)
  100.        ApproxExport : Byte;                                       (* How long does it take to export 1000 msgs?             *)
  101.        CheckAbort   : Byte;                                       (* In DV export, check for abort every n msgs, 0 = never  *)
  102.        CombSortArea : Byte;                                       (* Sort file areas by name or number                      *)
  103.        CombSortCnt  : Byte;                                       (* Sort methods count                                     *)
  104.        CombCursor   : Byte;                                       (* How to handle cursor in file combined                  *)
  105.        Attrib1      : Word;       (* Bit 00 = AllowFReqs  : Boolean; TRUE if file requests are allowed                      *)
  106.                                   (* Bit 01 = DVPack      : Boolean; TRUE if messages can be (un)packed in another window   *)
  107.                                   (* Bit 02 = DVExport    : Boolean; TRUE if messages can be tossed in another window       *)
  108.                                   (* Bit 03 = UseMSGIDX   : Boolean; TRUE if MSGIDX.BBS is used to scan msgs                *)
  109.                                   (* Bit 04 = UseMSGINDEX : Boolean; TRUE if new msg index file is used                     *)
  110.                                   (* Bit 05 = AreaShow    : Boolean; TRUE if file combined areas are shown at start?        *)
  111.                                   (* Bit 06 = FlushBuffer : Boolean; TRUE if buffer is flushed after scr write at <2400bps  *)
  112.                                   (* Bit 07 = LocalUser   : Boolean; TRUE if WhoTo must exist in userbase in local msgs     *)
  113.        MaxMsgsPack2 : Word;                                       (* How many msgs to be packed at most on 2400-7200 bps    *)
  114.        MaxMsgsPack3 : Word;                                       (* How many msgs to be packed at most on 9600-38400 bps   *)
  115.        O_KeepDays   : Byte;                                       (* Keep non-downloaded pkts n days; 0 = always            *)
  116.        O_KeepPkts   : Byte;                                       (* Keep max n non-downloaded pkts; 0 = keep all           *)
  117.        O_KeepSize   : Word;                                       (* Keep max n kb of non-downloaded pkts; 0 = keep all     *)
  118.        ConvChars    : Byte;                                       (* With REPLIES. See below...                             *)
  119.        DupeMaxSize  : Word;                                       (* Duplicate msgs database entries; 0 = don't check dupes *)
  120.        DefaultBoard : Byte;                                       (* QWK dupe board                                         *)
  121.        DefaultNetAttr:Byte;                                       (* Default net attribute; See SBBS structures             *)
  122.        CarbonCopySec: Word;                                       (* Minimum sec.lvl to use carbon copies or cross post     *)
  123.        Empty        : Array [1..276] of Byte;                     (* Empty space                                            *)
  124.      end;                                                         (* Size 10000 bytes                                       *)
  125.  
  126.      (*
  127.         CombSortArea: Bytes 0-1 : Sort method 1
  128.                       Bytes 2-3 : Sort method 2
  129.                       00 = by number
  130.                       01 = by name
  131.  
  132.         CombCursor:   00 = no cursor
  133.                       01 = cursor, don't move
  134.                       02 = cursor, move last direction
  135.                       03 = cursor, move to right
  136.      *)
  137.  
  138.      ExportFormat = (_QWK, _Omen, _ASCII, _None);
  139.  
  140.      UserInfo = Record                       (* PTQWKUSR.BBS                                          *)
  141.        Deleted      : Boolean;               (* TRUE if user is marked to be deleted                  *)
  142.        Name         : String [35];           (* User name                                             *)
  143.        LastDate     : String [8];            (* When user has used this door last                     *)
  144.        LastFileScan : String [8];            (* Last file scan date (MM-DD-YY)                        *)
  145.        Times        : LongInt;               (* How many times user has used this door                *)
  146.        TotalPacked  : LongInt;               (* Total packed msgs count                               *)
  147.        LastPacked   : Word;                  (* Last time packed msgs count                           *)
  148.        MaxMsgsPack  : Word;                  (* How many messages to be packed at most                *)
  149.        MsgMaxLength : Word;                  (* Message's maximum length in lines, otherwise splitted *)
  150.        WhereToPack  : Where;                 (* Where to save packets                                 *)
  151.        Format       : ExportFormat;          (* Export messages in this format by default             *)
  152.        Packer       : Char;                  (* Archive format                                        *)
  153.        Protocol     : Char;                  (* Default protocol                                      *)
  154.        ConvChars    : Byte;                  (* With MSG PACKETS. See below...                        *)
  155.        RightMargin  : Byte;                  (* Right marginal in exported msgs, 0 if SBBS default    *)
  156.        StrPointer   : Integer;               (* Pointer to PTQWKSTR.BBS (save string file)            *)
  157.        FileCombined : Array [1..25] of Byte; (* File combined boards; bit mapped like message boards  *)
  158.        Attrib1      : Word;
  159.             (* Bit 00 = UseCombined  : Boolean; TRUE if only combined boards are saved to CONTROL.DAT *)
  160.             (* Bit 01 = SendWelcome  : Boolean; TRUE if WELCOME.ANS/.ASC is sent to user              *)
  161.             (* Bit 02 = SendNews     : Boolean; TRUE if NEWS.ANS/.ASC is sent to user                 *)
  162.             (* Bit 03 = SendGoodbye  : Boolean; TRUE if GOODBYE.ANS/.ASC is sent to user              *)
  163.             (* Bit 04 = SendNewFiles : Boolean; TRUE if new files list is sent to user                *)
  164.             (* Bit 05 = SendBulletin : Boolean; TRUE if updated bulletin files are sent to user       *)
  165.             (* Bit 06 = SendEmptyQWK : Boolean; TRUE if mail packet is sent even if no msgs are found *)
  166.             (* Bit 07 = CreateIndex  : Boolean; TRUE if index files are created and sent to user      *)
  167.             (* Bit 08 = SendPointers : Boolean; TRUE if last read pointers are sent to user           *)
  168.             (* Bit 09 =              : Boolean;                                                       *)
  169.             (* Bit 10 = UpdatePtrs   : Boolean; TRUE if pointers are updated when carrier is lost etc *)
  170.             (* Bit 11 = Hotkeys      : Boolean; TRUE if hot keys are active                           *)
  171.             (* Bit 12 = Marked2Pers  : Boolean; TRUE if marked msgs are flagged as personal msgs      *)
  172.             (* Bit 13 = AlwsInclMail : Boolean; TRUE if new personal mail is always included          *)
  173.             (* Bit 14 = AllAsMail    : Boolean; TRUE if msgs to 'All' are considered as personal mail *)
  174.             (* Bit 15 = ShowNewMsgs  : Boolean; TRUE if new messages on each area are SHOWN at start  *)
  175.        Attrib2      : Word;
  176.             (* Bit 00 = OfflinePack  : Boolean; TRUE if messages are packed offline to user           *)
  177.             (* Bit 01 = DVPack       : Boolean; TRUE if messages are (un)packed in another DV window  *)
  178.             (* Bit 02 = DVExport     : Boolean; TRUE if messages are tossed in another DV window      *)
  179.             (* Bit 03 = MultiOutput  : Boolean; TRUE if different msg areas are shown on own lines    *)
  180.             (* Bit 04 = NoReInSubj   : Boolean; TRUE if RE: is removed from subjects                  *)
  181.             (* Bit 05 = Received     : Boolean; TRUE if personal mail is "received" when packed       *)
  182.             (* Bit 06 = FirstMenu    : Boolean; TRUE if PTQWK.MNU is run when entering BBS            *)
  183.             (* Bit 07 = O_Netmail    : Boolean; TRUE if offline packets are sent netmail (else local) *)
  184.             (* Bit 08 = NoOwnMsgs    : Boolean; TRUE if own messages are NOT packed                   *)
  185.        Zone         : Word;                  (* Net mail "zone"                                       *)
  186.        Net          : Word;                  (* Net mail "net"                                        *)
  187.        Node         : Word;                  (* Net mail "node"                                       *)
  188.        OfflineDays  : Byte;                  (* Bit 0 = Monday, Bit 1 = Tuesday, ... Bit 6 = Sunday   *)
  189.        LastBulletScan : String [8];          (* Last bulletin scan date (MM-DD-YY)                    *)
  190.        MsgsPosted   : Word;                  (* Msgs posted but not added to USERS.BBS                *)
  191.        MinMsgsPack  : Word;                  (* Minimum messages count to be packed                   *)
  192.        LanguageName : String [8];            (* Language name, defined in PTLNG.CTL                   *)
  193.        Empty        : Array [1..65] of Byte; (* Empty space                                           *)
  194.      end;                                    (* Size 200 bytes                                        *)
  195.  
  196.      (*
  197.         ConvChars : Byte
  198.           Bit 0   = Convert 8-bit (PC)  scandinavian characters åäöÅÄÖ
  199.           Bit 1   = Convert 7-bit       scandinavian characters }{|][\
  200.           Bit 2   = Convert 8-bit (ISO) scandinavian characters σΣ÷┼─╓
  201.           Bit 3-4 = Convert to which format?
  202.                     3=Off 4=Off (00) -> No convertion
  203.                     3=On  4=Off (01) -> 8-bit (PC)
  204.                     3=Off 4=On  (10) -> 7-bit
  205.                     3=On  4=On  (11) -> 8-bit (ISO)
  206.      *)
  207.  
  208.      UserInfoIndex = Record                  (* PTQWKUSR.IDX                                          *)
  209.        NameCRC32    : LongInt;               (* CRC32 of capitalized 8-bit user name                  *)
  210.      end;                                    (* Size 4 bytes                                          *)
  211.  
  212.      NEWMSGIDX = Record                      (* MSGINDEX.BBS; see below                               *)
  213.                 WhoFromCRC32:  LongInt;      (* CRC-32 of writer's capitalized name                   *)
  214.                 WhoToCRC32:    LongInt;      (* CRC-32 of receiver's capitalized name                 *)
  215.                 MsgAttrib:     Byte;         (* Msg attributes; see SBBS structures                   *)
  216.                 NetAttrib:     Byte;         (* Net attributes; see SBBS structures                   *)
  217.                 MsgBoard:      Byte;         (* Msg board number                                      *)
  218.                 Date:          Word;         (* High word from standard MS-DOS time format            *)
  219.                 MsgNumber:     Word;         (* Msg number                                            *)
  220.               end;                           (* 15 bytes / record                                     *)
  221.  
  222.      (* ALL support for MSGINDEX.BBS is appreciated! *)
  223.  
  224.      (* Other PTQWK data/configuration files:
  225.         DUPES.BBS, INCLUDE.CTL, NAMES.CTL, OFFLINE.CTL,
  226.         GROUPS.CTL, PTLNG.CTL, NETZONES.CTL, BBSID.PTR *)
  227.